package com.micro.ai.agents.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 智能体响应DTO
 * 
 * @author micro-ai
 * @since 0.0.1
 */
@Data
@Schema(description = "智能体信息")
public class AgentDTO implements Serializable {

    private static final long serialVersionUID = 1L;

    @Schema(description = "智能体ID")
    private String id;

    @Schema(description = "租户ID")
    private String tenantId;

    @Schema(description = "智能体名称")
    private String name;

    @Schema(description = "描述")
    private String description;

    @Schema(description = "系统提示词")
    private String systemPrompt;

    @Schema(description = "主模型配置ID")
    private String modelConfigId;

    @Schema(description = "降级模型配置ID")
    private String fallbackModelConfigId;

    @Schema(description = "是否使用微调模型")
    private Boolean useFineTunedModel;

    @Schema(description = "微调模型ID")
    private String fineTunedModelId;

    @Schema(description = "训练数据集ID")
    private String trainingDatasetId;

    @Schema(description = "温度参数")
    private BigDecimal temperature;

    @Schema(description = "最大token数")
    private Integer maxTokens;

    @Schema(description = "状态")
    private String status;

    @Schema(description = "头像URL")
    private String avatarUrl;

    @Schema(description = "欢迎消息")
    private String welcomeMessage;

    @Schema(description = "标签（JSON）")
    private String tags;

    @Schema(description = "版本号")
    private String version;

    @Schema(description = "创建人ID")
    private String createdBy;

    @Schema(description = "创建时间")
    private LocalDateTime createdAt;

    @Schema(description = "更新时间")
    private LocalDateTime updatedAt;

    // 统计信息（从视图获取）
    @Schema(description = "总会话数")
    private Long totalConversations;

    @Schema(description = "活跃会话数")
    private Long activeConversations;
}

